
import axios from "axios";
import { ElMessage } from "element-plus";

const request = axios.create({
    baseURL: 'http://localhost:8085',
    timeout: 10000,
})

// 请求拦截器
request.interceptors.request.use(config => {
    config.headers['Content-Type'] = 'application/json;charset=UTF-8';

    const token = localStorage.getItem('token');
    if (token) {

        config.headers.token = token; // 修改这里
    }

    // 添加调试日志（生产环境可删除）
    console.log('请求配置:', config);
    console.log('携带的token:', token);

    return config;
}, error => {
    return Promise.reject(error)
});

// 响应拦截器
request.interceptors.response.use(
    response => {
        // 保持完整的response结构，只处理data部分
        let res = response.data;
        if (typeof res === 'string') {
            res = res ? JSON.parse(res) : res;
        }

        // 将处理后的数据重新赋值给response.data
        response.data = res;
        return response; // 返回完整的response对象
    },
    error => {
        console.error('请求错误：', error);

        if (error.response) {
            const status = error.response.status;
            if (status === 404) {
                ElMessage.error('请求失败，路径不存在');
            } else if (status === 500) {
                ElMessage.error('服务器异常');
            } else if (status === 401) {
                ElMessage.error('未授权，请重新登录');
                // 清除本地存储的登录信息 - 修改存储键名
                localStorage.removeItem('token'); // 修改这里
                localStorage.removeItem('adminId');
                localStorage.removeItem('adminName');
            } else {
                ElMessage.error(error.response.data?.msg || '请求失败');
            }
        } else if (error.request) {
            ElMessage.error('网络连接失败，请检查网络');
        } else {
            ElMessage.error('请求配置错误');
        }

        return Promise.reject(error);
    }
);

export default request;
